package com.itat.apiCases;

import org.springframework.stereotype.Component;

import javax.annotation.PostConstruct;

/**
 *  Q：构造器初始化方法测试
 *   1. 启动服务测试：默认无参构造器在服务启动的时候就会初始化，已测试;带参数的构造器，如果没有实例化则不会初始化
 *   2. 调用方法测试：会优先执行默认构造器，然后才会执行调用方法，已测试
 *   3. @PostConstruct注解测试：@PostConstruct修饰的方法在服务启动的时候就会初始化，已测试;
 * @author Darren bo
 * @version 1.0
 * @date 2021/5/12
 */
@Component
public class InitConstructorApi {

    private Integer param1;

    private InitConstructorApi() {//服务启动就会执行

        System.out.println("初始化 InitConstructorApi() init YES");

    }

    private InitConstructorApi(Integer param1) {//new实例化才会执行
        this.param1=param1;
        System.out.println("初始化 InitConstructorApi(param1) init YES");

    }

    public void doMethodInit(){//方法调用才会执行
        System.out.println("初始化 doMethodInit()  init YES ");
    }

    @PostConstruct
    public void doMethodInitAsPostConstruct(){//服务启动就会执行
        System.out.println("初始化 doMethodInitAsPostConstruct() init YES ");
    }

}
